// ASample.h: interface for the CASample class.
//
//////////////////////////////////////////////////////////////////////

#ifndef A_SAMPLE_H
#define A_SAMPLE_H

// Jiadi Yang, commented the include files
//#include <afxwin.h>         // MFC core and standard components
//#include <afxext.h>         // MFC extensions
//#ifndef _AFX_NO_AFXCMN_SUPPORT
//#include <afxcmn.h>			// MFC support for Windows Common Controls
//#endif // _AFX_NO_AFXCMN_SUPPORT


#include <vector>
#include "mcRaster.h"

typedef std::vector<int> vint;
typedef std::vector<float> vfloat;
typedef	std::vector<irmm_Rect> vrect;

class CFeaID
{
public:
	char strFeaName[2];
	int  nFeaIdx;

	CFeaID operator=(const CFeaID &fid)
	{
		strFeaName[0] = fid.strFeaName[0];
		strFeaName[1] = fid.strFeaName[1];
		nFeaIdx = fid.nFeaIdx;
		return *this;
	}
};

typedef std::vector<CFeaID> vfeaid;

class CASample  
{
public:
	CASample(){};
	virtual ~CASample(){};

	// return number of features it gets
	virtual int GetFeatures(vfloat &vfFeatures, vfeaid &vFeaID) =0;
};

typedef std::vector<CASample *> CVPSample;

#endif 